<?php
include_once("../inc/common.php");

// Controle de acesso /////////////////////////////////////////////
Security::verifyUser("");

// Conexão com o banco de dados ///////////////////////////////////
$conn = new db();
$conn->open();

// Limpa ordenação e filtro ///////////////////////////////////////
Session::clearFilter();

// Salva status da página atual ///////////////////////////////////
$same_page = Session::handleCurrentPage();

// Ordenação //////////////////////////////////////////////////////
$iSort = Param::get("Sorting");
$iSorted = Param::get("Sorted");
$form_sorting = "";
if ((!$iSort) && (!$same_page)) {
	$form_sorting = "";
	$iSort = 2; // Coluna que será ordenada
	$iSorted = ""; // Se for descendente, repita o valor
}
if ($iSort) {
	if ($iSort == $iSorted) {
		$form_sorting = "";
		$sDirection = " DESC";
		$sSortParams = "Sorting=" . $iSort . "&Sorted=" . $iSort . "&";
	} else {
		$form_sorting = $iSort;
		$sDirection = " ASC";
		$sSortParams = "Sorting=" . $iSort . "&Sorted=" . "&";
	}

	if ($iSort == 2) Session::set("sOrder", " order by dt_inicio" . $sDirection);
	if ($iSort == 3) Session::set("sOrder", " order by id_curso" . $sDirection);
	if ($iSort == 4) Session::set("sOrder", " order by id_instrutor" . $sDirection);
}

// Construção da pesquisa /////////////////////////////////////////
if (Param::get("executed") == "s") {
	$where = "";
	if (Param::getInt("f_id_curso") > 0) $where .= "AND id_curso = " . Param::getInt("f_id_curso") . " ";
	if (Param::getInt("f_id_instrutor") > 0) $where .= "AND id_instrutor = " . Param::getInt("f_id_instrutor") . " ";
	if (Param::get("f_data_1") != "") $where .= "AND dt_inicio >= '" . Dates::format(Param::get("f_data_1")) . "' ";
	if (Param::get("f_data_2") != "") $where .= "AND dt_inicio <= '" . Dates::format(Param::get("f_data_2")) . "' ";
	Session::set("where", $where);
}

// Expressão SQL que define a lista ///////////////////////////////
$sql = "SELECT turma.*, curso.txt_curso, instrutor.txt_nome " .
		"FROM turma, curso, instrutor " .
		"WHERE turma.id_curso=curso.id_curso AND turma.id_instrutor=instrutor.id_instrutor " .
		Session::get("where") .
		Session::get("sOrder");

// Criação do resultset ///////////////////////////////////////////
$rs = new query($conn, $sql, Paging::getPage(), LISTA_QTDE_REGISTROS);

// Deck de botões /////////////////////////////////////////////////
$button = new Button();
$button->add("btnNovo", "Novo");
$button->add("btnPesquisa", "Pesquisa");
$button->add("btnExcluir", "Excluir");

// Lista de dados /////////////////////////////////////////////////
$table = new Table("lista", 5);
$table->addCheckboxColumnHeader();
$table->addColumnHeader("Início", true, "20%", "C"); // Título, Ordenar?, Largura, Alinhamento
$table->addColumnHeader("Curso", true, "30%", "L");
$table->addColumnHeader("Instrutor", true, "30%", "L");
$table->addColumnHeader("Carga horária", false, "20%", "R");

while ($rs->getrow()) {
	$id = $rs->field("id_turma");

	$linkEdicao = new Link($rs->field("txt_curso"), "../mod_turma/turma-edicao.php", "Clique para editar o registro");
	$linkEdicao->addParameter("id", $id);
	$linkEdicao->addParameter("page", Paging::getPage());

	if ($iSort == 3) {
		if ($oldCur != $rs->field("id_curso")) {
			$table->addBreak($rs->field("txt_curso"));
			$oldCur = $rs->field("id_curso");
		}
	}
	if ($iSort == 4) {
		if ($oldIns != $rs->field("id_instrutor")) {
			$table->addBreak($rs->field("txt_nome"));
			$oldIns = $rs->field("id_instrutor");
		}
	}

	$table->addCheckboxData($id);
	$table->addData(Format::date($rs->field("dt_inicio")), "C");
	$table->addData($linkEdicao->getLink());
	$table->addData($rs->field("txt_nome"));
	$table->addData($rs->field("nro_carga_horaria"), "R", false);
}
?>
<!DOCTYPE html>
<html>
    <head>
		<?php
		Element::headBlock();
		?>
		<script type="text/javascript">
			$(document).ready(function(){
				$("#btnNovo").click(function() {
					location = "../mod_turma/turma-edicao.php";
				});

				$("#btnPesquisa").click(function() {
					location = "../mod_turma/turma-pesquisa.php";
				});

				$("#btnExcluir").click(function() {
					if (confirm('Confirma exclusão das turmas selecionadas?')) {
						$("#lista").attr("action","../mod_turma/turma-controller.php?action=excluir");
						$("#lista").submit();
					}
				});
			});
		</script>
    </head>
    <body>
		<div id="container">
			<?php Element::header("Lista de Turmas"); ?>
			<div id="acoes"><?php $button->writeHTML(); ?></div>
			<div id="dados">
				<?php
				Messages::handleMessages();
				Paging::writeLinks($rs->totalpages());
				Session::writeWhereStatus();
				if ($rs->numrows() > 0) {
					$table->writeHTML();
					Paging::writeStatus($rs->totalpages());
				} else {
					Paging::writeStatusIfEmpty();
				}
				?>
			</div>
		</div>

    </body>
</html>
<?php
// Fecha conexão //////////////////////////////////////////////////
$conn->close();
?>
